#ifndef __TYPEDEFS_H
#define __TYPEDEFS_H

//-----------------------------------------------------------------------------
// Typendeklarationen
typedef signed char S8;
typedef signed char S08;
typedef signed char tS08;
typedef unsigned char U8;
typedef unsigned char U08;
typedef unsigned char tU08;

typedef signed int S16;
typedef signed int tS16;
typedef unsigned int U16;
typedef unsigned int tU16;
typedef signed long S32;
typedef signed long tS32;
typedef unsigned long U32;
typedef unsigned long tU32;

typedef S08 *pS8;
typedef S08 *pS08;
typedef U08 *pU8;
typedef U08 *pU08;
typedef S16 *pS16;
typedef U16 *pU16;
typedef S32 *pS32;
typedef U32 *pU32;
typedef float *pfloat;

typedef U08 BOOL;
typedef BOOL *pBOOL;

//typedef U08 __flash *fpU08;			// used for flash storable variables - needed?

typedef union uMEM16 // Word and Byte access to 16-Bit data
{
  U16 word; // Word
  pU16 pword; // Pointer to Word
  U08 byte[2]; // Byte
  pU08 pbyte; // Pointer to Byte
} tMEM16;

typedef union uMEM32 // DWord, Word and Byte access to 32-Bit data
{
  U32 dword; // DWORD
  pU32 pdword[2]; // Pointer to U32

  float fp; // Float
  pfloat pfp[2]; // Pointer to float

  U16 word[2]; // Word
  pU16 pword[2]; // Pointer to U16

  U08 byte[4]; // Byte
  pU08 pbyte[2]; // Pointer to U08

} tMEM32;

//-----------------------------------------------------------------------------

#endif
